setClass("vPCAReducer",contains="Reducer",
		representation(
				.eigenValues="numeric",
				.eigenVectors="matrix",
				.rotatedSet="matrix",
				"VIRTUAL"),
		prototype=prototype(
				.description="Virtual PCA Reducer Class"
		),
		validity=function(.Object){
			if(! is(.Object@.dimChooser,"PCADimChooser")){
				stop("vPCAReducer must be initialized by PCADimChooser object. vPCAReducer was initialized by ",class(.Object@.dimChooser))
			}
		}
) 
#methods

setMethod("initialize",
		signature="vPCAReducer",
		function(.Object,dimChooser,...){
			#.Object@.dimChooser <- dimChooser;
			.Object<-callNextMethod(.Object,dimChooser,...)
			validObject(.Object)
			return(.Object)
		})